package com.ning.parking.service;

import com.ning.parking.domain.ParkingLotMonthlyApply;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ning.parking.domain.ParkingRecord;
import com.ning.parking.domain.VO.BillingTimeVO;
import com.ning.parking.domain.VO.Pagination;
import com.ning.parking.domain.dto.ParkingLotMonthlyApplyCarDTO;
import com.ning.parking.domain.dto.ParkingLotMonthlyApplyPageDto;
import com.ning.parking.domain.dto.ParkingLotMonthlyApplyProveDTO;
import com.ning.parking.domain.dto.ParkingLotWhitelistCarLicenseEntity;

import java.util.Date;
import java.util.List;

/**
 *
 */
public interface ParkingLotMonthlyApplyService extends IService<ParkingLotMonthlyApply> {

    Pagination<ParkingLotMonthlyApply> selectPage(ParkingLotMonthlyApplyPageDto parkingLotMonthlyApply);
    Long saveApplyInfo(ParkingLotMonthlyApplyPageDto applyEntity, List<ParkingLotMonthlyApplyCarDTO> applyCarList, List<ParkingLotMonthlyApplyProveDTO> baseProveList);

    ParkingLotMonthlyApply selectMonthlyExit(String carLicense, Date captureTime, Long parkingLotId);
    ParkingLotMonthlyApply selectMonthly(String carLicense, Date captureTime, Long parkingLotId);

    BillingTimeVO selectMonthlyRecord(ParkingRecord record);

    void saveBatchs(List<ParkingLotWhitelistCarLicenseEntity> licenseEntities);
}
